# 变量存储在内存中，且不需要定义类型
# 标准数据类型: Number(数字),String(字符串),List(列表),Tuple(元组),Dictionary(字典)
# 整型赋值
a = 100
# 浮点数赋值
b = 1.1
# 字符串赋值
c = "1"
print(a, b, c)
# 多个变量赋值
a1, a2, a3 = 1, 22.1, "乃那你"
print(a1, a2, a3)

# 字符串操作String
# 获取字符串中一段值(使用[头下标:尾下标]从0开始包含头下标但是不包括尾下标，负数表示从后往前数从-1开始)
s = "this is a string"
print(s[0:5])
print(s[2:-1:2])
# 只取一个值表示只取这个列表的一个值
print(s[0])
# 取三个值时头下标:尾下标:步长]
print(s[0:10:2])
#
# 列表操作 List []
list = ["aaa", 111, 1.001, True, [1, 2, 3], ]
list1 = [11, "性的"]
list1[0] = 111
print(list)
# front列表+列real表会将real列表的每一个值添加到front列表中,
print(list1)
print(list + list1)

# 元组操作 Tuple ()
# 和列表操作类似,只是元组的数据不支持修改但是进行添加操作
tuple1 = ('runoob', 786, 2.23, 'john', 70.2)
tuple2 = (1, 11)
print(tuple1 + tuple2)
#
# 字典操作 Dictionary {}
# 创建字典1
dict1 = {}
dict1['one'] = "one"
dict1[2] = 2
dict1['2'] = "2222"
# 创建字典2
tinyDict = {'name': 'name', 'age': 11, 'happy': ["1111", "222"]}
print(dict1)
print(tinyDict)
# 获取字典的值
print(dict1.get(2))
print(dict1.get("2"))
# 获取字典所有的key和value
print(tinyDict.keys())
print(tinyDict.values())

# Python数据类型转换
# 创建一个复数
print(complex(8, 1))

# eval(s)将s转成字典,这个s需要是一个json串,dict(d),这个d必须是一个序列 (key,value)字典。
print(eval("{'name': 'name', 'age': 11, 'happy': [\"1111\", \"222\"]}"))
print(dict({'name': 'name', 'age': 11, 'happy': ["1111", "222"]}))

# tuple(s)将s转成元组,这个s将每一个字符做成元组的一个
print(tuple("19857"))